<?php

/* * *********************************************************** */
/* * ******************** controller usuario ******************* */
/* * ************ Desenvolvido por Antônio Ezequiel ************** */
/* * *********************************************************** */

//verifica se o usuario esta logado
if (!verificaUsuarioLogado ())
    header("location: " . $configurator["siteadmin"] . '/login.A&V');
//verifica se o usuario tem permissao
if (!verificaPermissao($_GET['pg'])) {
    header("location: " . $configurator["siteadmin"] . '/erro_permissao.A&V');
}

//atauliza o log do usuario
atualizaLogUsuario($configurator);

//inclusão das classes
include($configurator["classes"] . "/produto.classes.php");
include($configurator["dao"] . "/produtoDao.php");
include($configurator["classes"] . "/categoria.classes.php");
include($configurator["dao"] . "/categoriaDao.php");
include($configurator["classes"] . "/editora.classes.php");
include($configurator["dao"] . "/editoraDao.php");
include($configurator["classes"] . "/autor.classes.php");
include($configurator["dao"] . "/autorDao.php");


//instanciação dos objetos
$_produto = new ProdutoDao();
$_categoria = new CategoriaDao();
$_editora = new EditoraDao();
$_autor = new AutorDao();

$smarty->assign('autores', $_autor->listarAutores());

//listagem via ajax
if (isset($_GET['ajaxAutor'])) {
    $autores = $_autor->listarAutoresMax();
   
    echo json_encode($autores);
    exit;
}

//listagem via ajax
if (isset($_GET['ajaxEditora'])) {
    $editoras = $_editora->listarEditoras();
    foreach ($editoras as $edi) {
        $cidi = array('codigo' => $edi[codigo], 'nome' => $edi[nome]);
        $editis[] = $cidi;
    }

    echo json_encode($editis);
    exit;
}
if ($_POST) {
    foreach ($_POST as $key => $valor) {
        if ($key != "autor") {
            $$key = addslashes($valor);
            $smarty->assign($key, $valor);
        }
        else
            $$key = $valor;
    }
    
    //checa erros:
    
    if ($titulo == null) {
        $erros[]['erro'] = "Informe um titulo. ";
    }
    if ($peso == null) {
        $erros[]['erro'] = "Informe um peso. ";
    }
    if ($idioma == null) {
        $erros[]['erro'] = "Informe um idioma. ";
    }
    if ($dimensoes == null) {
        $erros[]['erro'] = "Informe as dimensões. ";
    }
    if ($capa == null) {
        $erros[]['erro'] = "Informe uma capa. ";
    }
    if ($categori == null) {
        $erros[]['erro'] = "Informe uma categoria. ";
    }
    if ($editor == null) {
        $erros[]['erro'] = "Informe uma editora. ";
    }
    if ($ano == null) {
        $erros[]['erro'] = "Informe um ano. ";
    }
    if ($preco == null) {
        $erros[]['erro'] = "Informe um preço. ";
    }
    if ($estoque == null) {
        $erros[]['erro'] = "Informe um estoque. ";
    }
    if ($preco == null) {
        $erros[]['erro'] = "Informe um preço. ";
    }
    if ($autor == null) {
        $erros[]['erro'] = "Informe um autor. ";
    }
    if ($tipo == '1') {
        $erros[]['erro'] = "Informe um tipo. ";
    }
    
    if (!preg_match("/^([0-9]*)?$/i", $peso)){
         $erros[]['erro'] = "O campo peso só aceita números. ";
    }
    
    if (!preg_match("/^([0-9]*)?$/i", $estoque)){
         $erros[]['erro'] = "O campo estoque só aceita números. ";
    }

    $edit = $_editora->listarEditoraNome($editor);

    if(!$edit[codigo])
        $erros[]['erro'] = "Editora não encontrada. ";
    
    $produtosDestaque = $_produto->verificarDisponibilidadeDestaque();
    
    if($produtosDestaque[quantidade] >= '9' and $destaque == '1')
        $erros[]['erro'] = "O número máximo de destaques já foi atingido. ";

    $categs = $_categoria->listarCategoriaNome($categori);

    if(!$categs[codigo])
        $erros[]['erro'] = "Categoria não encontrada. ";
    
    if (!$erros) {
        if ($_FILES['foto_produto'][tmp_name] != null ) {
            $diretorio = $configurator["fotos_produtos"];
            $foto = $_FILES['foto_produto'][tmp_name];
            $nome = time() . ".png";
            move_uploaded_file($foto, "$diretorio/$nome");
            reduz_imagem("$diretorio/$nome", $configurator["large_width"], $configurator["large_height"], "$diretorio/$nome");
            $fotoNova = $nome;
        }
        $pre = str_replace('.', '', $preco);
        $preco = str_replace(',', '.', $pre);
        
        //setagem do objeto
        $_produto->setAtivo(1);
        $_produto->setAut_codigo($autor);
        $_produto->setCapa($capa);
        $_produto->setCat_codigo($categs[codigo]);
        $_produto->setCod($cod);
        $_produto->setDimensao($dimensoes);
        $_produto->setEdi_codigo($edit[codigo]);
        $_produto->setEstoque($estoque);
        $_produto->setIdioma($idioma);
        $_produto->setImagem($fotoNova);
        $_produto->setPeso($peso);
        $_produto->setPreco($preco);
        $_produto->setSinopse($sinopse);
        $_produto->setSubtitulo($subtitulo);
        $_produto->setTipo($tipo);
        $_produto->setTitulo($titulo);
        $_produto->setImagem($fotoNova);
        $_produto->setAno($ano);
        $_produto->setPagina($pagina);

        $dado = $_produto->adicionarProduto();

        foreach ($autor as $valor) {
            $_produto->setAut_codigo($valor);
            $_produto->setCod($dado);
            $prod = $_produto->adicionarAutorProduto();
        }

        if ($dado) {
            foreach ($_POST as $key => $valor)
                $smarty->assign($key, '');
            $smarty->assign('cadastro', true);
            $smarty->display("produto_cadastro.tpl");
        }
    } else {
        $smarty->assign('erros', $erros);
        $smarty->display("produto_cadastro.tpl");
    }
}else
    $smarty->display("produto_cadastro.tpl");
?>
